Ant: A Framework for Increasing the Efficiency of Sequential Debugging Techniques with Parallel Programs

نویسندگان

  • Jae-Woo Lee
  • SAMUEL P. MIDKIFF
  • MITHUNA S. THOTTETHODI
  • RUDOLF EIGENMANN
  • VIJAY S. PAI
چکیده

Lee, Jae-Woo Ph.D., Purdue University, December 2013. Ant: A Framework for Increasing the Efficiency of Sequential Debugging Techniques with Parallel Programs. Major Professor: Samuel P. Midkiff. Bugs in sequential programs cost the software industry billions of dollars in lost productivity each year. Even if simple parallel programming models are created, they will not reduce the level of sequential bugs in programs below that of sequential programs. It can be argued that the complexity of current parallel programming models may increase the number of sequential bugs in parallel programs because they distract the programmer from the core logic of the program. Tools exist that identify statements related to sequential bugs and allow those bugs to be more quickly located and fixed. Their use in parallel programs will continue to be useful. Many of these debugging tools require runtime monitoring of program points of interest in a program and the overhead of this monitoring is usually very high. We propose Ant, a framework that increases the efficiency of sequential debugging techniques when used with parallel programs. The Ant framework takes two different strategies depending on whether the program to be debugged is a distributed memory program or shared memory program. For MPI programs, the Ant compiler analyzes the program and identifies two different types of code regions: those that all processes execute and regions that only part of the processes execute. For shared memory Pthreads programs, Ant uses a combination of static and dynamic analyses to determine similar parts of the program executing in parallel and the number of threads executing those parts of the program. The programs are instrumented with calls to Ant runtime libraries and debugging libraries based on the Ant compiler’s

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Structured Approach to Parallel Programming: Methodology and Models

Parallel programming continues to be difficult, despite substantial and ongoing research aimed at making it tractable. Especially dismaying is the gulf between theory and the practical programming. We propose a structured approach to developing parallel programs for problems whose specifications are like those of sequential programs, such that much of the work of development, reasoning, and tes...

متن کامل

Debugging in Parallel or Sequential: An Empirical Study

Faults need to be identified, localized, and removed from programs. Empirical studies show that coverage-based faults localizations effectively target bugs, even in the presence of multiple faults. Debugging is a time-consuming activity and thus it is beneficial to accelerate the process by employing appropriate techniques. The need for speeding up the debugging process is even more immense whe...

متن کامل

Parallel Functional Programming with Skeletons: the ocamlp3l experiment

Writing parallel programs is not easy, and debugging them is usually a nightmare. To cope with these di culties, a structured approach to parallel programs using skeletons and template based compiler techniques has been developed over the past years by several researchers, including the P3L group in Pisa. This approach is based on the use of a set of primitive forms that are just functionals im...

متن کامل

OcamlP 3 l a functional parallel programming system ∗

Writing parallel programs is not easy, and debugging them is usually a nightmare. To cope with these difficulties, a structured approach to parallel programs using skeletons and template based compiler techniques has been developed over the past years by several researchers, including the P3L group in Pisa. This approach is based on the use of a set of primitives that are just functionals imple...

متن کامل

Relative Debugging for Parallel Systems

Relative debugging is a system which allows a programmer to compare the state of two executing programs. It is embedded in a conventional debugger, and makes it possible to isolate errors after a program has been modified or "ported" from one system to another. It has found been that relative debugging is useful for finding errors in large scientific programs. The technique is applicable to seq...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015